import http from '../http'

/**
 * 获取列表
 *
 * @param params 请求参数
 * @returns 返回结果列表
 */
export async function getList(params: any) {
  // 发起HTTP GET请求
  const { rows } = await http({
    method: 'GET',
    path: '/dev-api/oa/leave/list',
    params,
  })

  // 返回获取到的数据行
  return rows
}
export async function getSearch(params: any) {
  const { rows } = await http({
    method: 'GET',
    path: '/dev-api/oa/leave/search',
    params,
  })

  return rows
}
export async function getSearchAll(params: any) {
  const { rows } = await http({
    method: 'GET',
    path: '/dev-api/oa/leave/searchall',
    params,
  })

  return rows
}

export async function deleteById(id: any) {
  const res = await http({
    method: 'DELETE',
    path: `/dev-api/oa/leave/${id}`,
    params: {},
  })

  return res;
}

/**
 * 向服务器添加流程数据
 *
 * @param leaveUser 离职用户信息
 * @param processUser 流程用户信息
 * @returns 服务器返回的结果
 */
export async function addProcessData(leaveUser: any, processUser: any) {
  const res = await http({
    method: 'POST',
    path: `/dev-api/oa/leaveProcessData`,
    params: {
      ...leaveUser,
      ...processUser,
    },
  })

  return res;
}

/**
 * 删除流程数据
 *
 * @param params 参数对象，包含 userId 和 userName
 * @returns 返回删除流程数据的结果
 */
export async function removeProcessData(params: { userId: number, userName: string }) {
  /**
   * 删除流程数据
   *
   * @param params 参数对象，包含 userId 和 userName
   * @returns 返回删除流程数据的结果
   */
  const res = await http({
    method: 'DELETE',
    path: `/dev-api/oa/leaveProcessData/remove`,
    params,
  })

  return res;
}

/**
 * 获取流程数据
 *
 * @param params 包含审批人用户名的参数对象
 * @returns 返回获取到的流程数据
 */
export async function getListByProcessUser(params: any) {
  /**
   * 获取流程数据
   *
   * @param approvalUserName 审批人用户名
   * @returns 返回获取到的流程数据
   */
  const { rows } = await http({
    method: 'GET',
    path: `/dev-api/oa/leave/searchbyuser`,
    params,
  })
  return rows;
}
/**
 * 获取流程数据历史记录
 *
 * @param params 请求参数
 * @returns 返回获取到的流程数据历史记录
 */
export async function getListHistoryByProcessUser(params: any) {
  /**
   * 获取流程数据
   *
   * @param approvalUserName 审批人用户名
   * @returns 返回获取到的流程数据
   */
  const { rows } = await http({
    method: 'GET',
    path: `/dev-api/oa/leave/searchhisbyuser`,
    params,
  })
  return rows;
}
/**
 * 获取指定用户的所有流程数据
 *
 * @param params 请求参数
 * @returns 流程数据数组
 */
export async function getListAllByProcessUser(params: any) {
  const { rows } = await http({
    method: 'GET',
    path: `/dev-api/oa/leaveProcessData/list`,
    params,
  })
  return rows;
}

/**
 * 根据用户ID更新请假审批状态
 *
 * @param id 用户ID
 * @returns 更新结果
 */
export async function updatePassById(id: number) {
  const res = await http({
    method: 'PUT',
    path: `/dev-api/oa/leave/pass`,
    params: { id },
  })
  return res;
}
/**
 * 根据ID更新无需审批的请假信息
 *
 * @param id 请假记录的ID
 * @returns 返回更新后的请假信息
 */
export async function updateNoPassById(id: number) {
  const res = await http({
    method: 'PUT',
    path: `/dev-api/oa/leave/nopass`,
    params: { id },
  })
  return res;
}

/**
 * 通过ID撤销操作
 *
 * @param id 要撤销操作的ID
 * @returns 返回撤销操作的结果
 */
export async function putRevokeById(id: number) {
  const res = await http({
    method: 'PUT',
    path: `/dev-api/oa/leave/revocation`,
    params: { id },
  })
  return res;
}